﻿Imports System.Reflection
Imports System.Reflection.Emit
Imports VBParser

Namespace Compiler.Semantic

    Public Enum ImportType
        NamespaceImport
        TypeImport
        NamespaceAlias
        TypeAlias
    End Enum

    ''' <summary>
    ''' Describs a Imports clause. 
    ''' </summary>
    ''' <remarks></remarks>
    Public Class ImportsDescription

        Private m_importsSyntaxNode As Import
        Public ReadOnly Property SyntaxNode() As Import
            Get
                Return m_importsSyntaxNode
            End Get
        End Property

        Private m_importedElement As Object
        Public ReadOnly Property ImportedElement() As Object
            Get
                Return m_importedElement
            End Get
        End Property

        Private m_alias As Symbol
        Public ReadOnly Property AliasSymbol() As Symbol
            Get
                Return m_alias
            End Get
        End Property

        Private m_importType As ImportType
        Public ReadOnly Property ImportType() As ImportType
            Get
                Return m_importType
            End Get
        End Property

        Protected Sub New(ByVal syntaxNode As Import)
            Debug.Assert(syntaxNode IsNot Nothing)
            m_importsSyntaxNode = syntaxNode
        End Sub
    End Class
End Namespace

